<div class="layui-form seller-form">

    <div class="layui-form-item">

        <div class="layui-inline">
            <div class="layui-input-inline seller-inline-7">
                <button class="layui-btn layui-btn-sm add-article-type"><i class="layui-icon">&#xe608;</i>添加</button>
                <button class="layui-btn layui-btn-sm" id="fold">全部折叠</button>
                <button class="layui-btn layui-btn-sm" id="deploy">全部展开</button>
            </div>
        </div>
    </div>
</div>

<div class="table-body">
    <table id="articleTypeTable" lay-filter="articleTypeTable"></table>
</div>

<script>
    layui.config({
        base: '__STATIC_LIB__layui/'
    }).extend({
        treetable: 'treetable-lay/treetable'
    }).use(['layer', 'table', 'treetable', 'form', 'jquery'], function() {
        var $ = layui.jquery,
            layer = layui.layer,
            table = layui.table,
            form = layui.form,
            treeTable = layui.treetable;
        // //执行渲染
        // table.render({
        //     elem: '#articleTypeTable', //指定原始表格元素选择器（推荐id选择器）
        //     height: 'full-220',
        //     cellMinWidth: '80',
        //     response: {
        //         statusName: 'status',
        //         countName: 'count',
        //         statusCode: 1
        //     },
        //     id:'articleTypeTable',
        //     url: "{:url('ArticleType/index')}",
        //     cols: [[ //标题栏
        //         {type: 'numbers'},
        //         {field: 'type_name', title: '文章分类名称'},
        //         {fixed: 'right', width:240, title:'操作',align:'center', toolbar:'#articleTypeBar'}
        //     ]] //设置表头
        //     //,…… //更多参数参考右侧目录：基本参数选项
        // });


        // treeColIndex	int	是	树形图标显示在第几列
        // treeSpid	object	是	最上级的父级id
        // treeIdName	string	否	id字段的名称
        // treePidName	string	否	pid字段的名称
        // treeDefaultClose	boolean	否	是否默认折叠
        // treeLinkage	boolean	否	父级展开时是否自动展开所有子级
        // 渲染表格
        var renderTable = function() {
            treeTable.render({
                treeColIndex: 1,
                treeSpid: 0,
                treeIdName: 'id',
                treePidName: 'pid',
                treeDefaultClose: false,
                // treeLinkage: false,
                elem: '#articleTypeTable',
                url: "{:url('ArticleType/index')}",
                // toolbar:'#deploy',
                page: false,
                cols: [
                    [{
                        type: 'numbers'
                    }, {
                        field: 'type_name',
                        minWidth: 200,
                        title: '分类名称'
                    }, {
                        field: 'codes',
                        minWidth: 200,
                        title: '编码',
                        width: 200
                    }, {
                        field: 'sort',
                        minWidth: 200,
                        title: '排序',
                        width: 100,
                        sort: true
                    }, {
                        fixed: 'right',
                        width: 240,
                        align: 'center',
                        title: '操作',
                        toolbar: '#articleTypeBar'
                    }]
                ],
                done: function() {
                    layer.closeAll('loading');
                }
            });
        };

        renderTable();



        //layui弹出层
        $(document).on('click', '.add-article-type', function() {
            JsGet("{:url('ArticleType/add')}", function(e) {
                window.box = layer.open({
                    type: 1,
                    content: e,
                    area: ['400px', '400px'],
                    title: '添加文章分类'
                });
            })
        });


        //ajax提交 添加
        form.on('submit(submit_article_type)', function(data) {
            JsPost("{:url('ArticleType/add')}", data.field, function(res) {
                if (res.status) {
                    layer.close(window.box);
                    layer.msg(res.msg, {
                        time: 1300
                    }, function() {
                        renderTable();
                    });
                } else {
                    layer.msg(res.msg);
                }
            })
        });

        //修改   edit
        form.on('submit(edit_article_type)', function(data) {
            JsPost("{:url('articleType/edit')}", data.field, function(res) {
                if (res.status) {
                    layer.close(window.box);
                    layer.msg(res.msg, {
                        time: 1300
                    }, function() {
                        renderTable();
                    });
                } else {
                    layer.msg(res.msg);
                }
            })
        });

        // 全部展开
        $('#deploy').click(function() {
            treeTable.expandAll('#articleTypeTable');
        })

        // 全部折叠
        $('#fold').click(function() {
            treeTable.foldAll('#articleTypeTable');
        })


        //监听工具条
        table.on('tool(articleTypeTable)', function(obj) { //注：tool是工具条事件名，test是table原始容器的属性 lay-filter="对应的值"
            var data = obj.data; //获得当前行数据
            var layEvent = obj.event; //获得 lay-event 对应的值（也可以是表头的 event 参数对应的值）

            if (layEvent === 'del') { //删除
                layer.confirm('真的要删除么', {
                    icon: 3
                }, function(index) {
                    JsGet("{:url('ArticleType/del')}?id=" + data.id, function(res) {
                        if (res.status) {
                            renderTable();
                            layer.close(index); //向服务端发送删除指令
                        }
                        layer.msg(res.msg);
                    })
                });
            } else if (layEvent === 'edit') { //编辑
                JsGet("{:url('ArticleType/edit')}?id=" + data.id, function(e) {
                    window.box = layer.open({
                        type: 1,
                        content: e,
                        area: ['400px', '400px'],
                        title: '修改文章分类'
                    })
                })
            } else if (layEvent === 'add_type') { //添加子分类
                JsGet("{:url('ArticleType/addSon')}?id=" + data.id, function(e) {
                    window.box = layer.open({
                        type: 1,
                        content: e,
                        area: ['400px', '400px'],
                        title: '添加子分类'
                    })
                })
            }

        });

    })
</script>

<script type="text/html" id="articleTypeBar">
    <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="add_type">添加子分类</a>
    <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
    <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>